#ifndef SAVEBMP_H__
#define SAVEBMP_H__

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
#include <string.h>


#pragma pack(push, 1)
typedef struct {
    uint16_t type;           // 文件类型，固定为0x4D42
    uint32_t size;           // 文件大小
    uint16_t reserved1;      // 保留字段1，设置为0
    uint16_t reserved2;      // 保留字段2，设置为0
    uint32_t offset;         // 数据偏移量
    uint32_t header_size;    // 信息头大小，固定为40
    int32_t width;           // 图像宽度
    int32_t height;          // 图像高度
    uint16_t planes;         // 颜色平面数，固定为1
    uint16_t bits_per_pixel; // 每个像素的位数
    uint32_t compression;    // 压缩类型，一般为0表示不压缩
    uint32_t image_size;     // 图像数据大小
    int32_t x_resolution;    // 水平分辨率，像素/米
    int32_t y_resolution;    // 垂直分辨率，像素/米
    uint32_t colors_used;    // 使用的颜色数，设置为0表示使用所有颜色
    uint32_t colors_important; // 重要颜色数，设置为0表示所有颜色都重要
} BMPHeader;
#pragma pack(pop)


void saveBMP(const char* username, int width, int height);

#endif